//
//  Softare.swift
//  Swift 3.0 基础语法
//
//  Created by YYY on 2017/7/19.
//  Copyright © 2017年 成品家（北京）网路科技有限公司. All rights reserved.
//

import UIKit

class Softare: NSObject {

    //基本数据类型，如果定义成可选，运行时同样获取不到，使用KVC就会崩溃
    //private，运行时同样获取不到，使用KVC就会崩溃

    var title: String = "122"
    var desc: String = "表述"
    var age: Int = 0
    
    
    //用swift的运行时获取类的属性列表
    class func propertyList() -> [String]
    {
        var count: UInt32 = 0
        //获取类的属性列表
        class_copyPropertyList(self, &count)
        
        let list = class_copyPropertyList(self, &count)
        
        for i in 0..<count
        {
            //使用guard语法，依此判断每一项是否有值，只要有一项为nil，就不再执行后续的代码
            guard let test = list?[Int(i)],let cname = property_getName(test),let newname = String(utf8String: cname)  else
            {
                continue
            }

            print(newname)
        }
        
        print("属性的数量：\(count)")
        
        free(list)
        return []
    }
}
